import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
	// state中是需要管理的全局变量
	state: {
		userInfo: {
			openid: '',
			//如果要是想将我们的token 放到我们的vuex里面进行保存的话 
			id:'',
			
			token:'',
			nickName:'',
			avatarUrl:'',
			
		},
		nickName: 'hhhh',
		inforOver:false,
		
		hasLogin: false,
		//状态栏高度
		barHeight:{},
	},
	actions:{
		
	},
	// mutations 是操作state中变量的方法
	mutations: {
		setNn(state,nickName){
				state.nickName = nickName;
		},
		//这个是我们的保存我们的用户的信息
		//info===value 
		saveUserInfo(state, info) { //保存数据到 store-全局变量
			state.userInfo.openid = info.openid;
			state.hasLogin = true;
		},
		logout(state) { //退出登录修改 全局变量
		//还不知道这个openid可以做什么其他的事情 所以说我们要进行的处理就是我们需要进行将我们的数据先存储到我们的vuex里面去 这样的话
			state.userInfo.openid = '';
			state.hasLogin = false;
		},
	
		
		login(state) {
			//授权。。
			// console.log(state);
			let that=this;
			if (!state.hasLogin) {
				uni.showLoading({
					title: '登录中...'
				});
				//调用微信的 获取用户信息的函数
				uni.getUserProfile({
					provider: 'weixin',
					lang: 'zh_CN',
					desc: '获取你的昵称、头像、地区及性别',
					success: (res1) => {
						// console.log(res1)
						uni.login({
							provider: 'weixin',
							success(res2) {
								
								state.userInfo.avatarUrl=res1.userInfo.avatarUrl;
								state.userInfo.nickName=res1.userInfo.nickName;
								const user = {
									nickName: res1.userInfo.nickName,
									avatarUrl: res1.userInfo.avatarUrl,
									code: res2.code
								}
								uni.request({
									//这里到时候换成服务器地址
									url: 'https://www.codingyt.com/club/wxuserinfo/wxLogin ', //仅为示例，并非真实接口地址
									data: user,
									method: 'POST',
									success(res) {
										state.hasLogin=true;
										state.userInfo.openid=res.data.data.data.openid;
										state.userInfo.id=res.data.data.data.id;
										uni.hideLoading();
										uni.showToast({
												title: '登陆成功',
											}),
											// 延时进行跳转 这里不用进行跳转
											setTimeout(() => {
												// uni.switchTab({
												// 	url: '../index/index'
												// })
												uni.navigateBack({
													delta:1
												})
											}, 2000)
									}
								})
							}
						})
					},
				});
			} else {
				uni.showToast({
					title: '已经登陆，请勿重复登陆',
					duration: 500
				})
			}
		
		}
	
	}
})
export default store
